iT邦幫忙

2025 iThome 鐵人賽

DAY 1
0
Modern Web

每天一點 API:打造我的生活小工具系列 第 1

Day 1 — 從零開始!建立 Python API 開發環境

  • 分享至 

  • xImage
  •  

參加目的

第一次參加鐵人賽,我主要是想培養自己「每天持續寫作與練習程式」的習慣。過去我常常三分鐘熱度,學東西總是沒辦法持續,最後成效都不太好。藉由這次鐵人賽 30 天的挑戰,我想逼自己每天投入一點時間,把這些累積起來變成看得到的學習成果。
我也想把這段過程記錄下來,未來可以回顧自己一路上的心得與成長,也能跟其他人分享。

為什麼選 API

我選擇以 API 作為主題,是因為它是軟體開發中是一個非常核心的概念。無論是前端、後端,甚至是資料分析,都離不開 API。更重要的是,這不僅能讓我學習實用技能,還能每隔幾天就實作到不同的 API 。
透過這次 30 天的挑戰,我想更深入了解:

  • API 的基本運作方式
  • 如何呼叫並處理 API 回傳的資料
  • 怎麼把 API 和實際專案整合起來

希望能夠從基礎開始,一步一步建立完整的知識結構,讓未來在寫專案時更得心應手。

我期待 30 天後能做到什麼

30 天後,我希望能夠做到以下幾點:

  1. 熟悉 API 的基本概念與格式(特別是 JSON 這種常見的資料格式)。
  2. 靈活運用 API :能用 Python 呼叫各種 API,並處理回傳的資料。
  3. 做出實際成果:完成幾個小專案(例如天氣查詢、爬取公開資料 API),作為這次挑戰的具體成果。
  4. 累積完整記錄:將每天的學習心得整理成文章,為這段學習旅程留下完整的紀錄。

環境準備

  1. 打開終端機
  • Windows:按 Win,輸入 PowerShell 後打開
  • 檢查目前位置:輸入 pwd 會看到你現在的資料夾
  1. 安裝 Python 3.10+
  • 從 python.org 安裝 Python 3.10 以上版本 (我裝的版本是 Python 3.13)
  • 安裝畫面記得勾選:Add Python to PATH
  • 安裝完關掉安裝程式、重新開一個 PowerShell

驗證版本

python --version

能看到Python 3.13.x就可以了。
3. 建立專案資料夾 API-30Days

mkdir API-30Days
cd API-30Days

(之後的每日程式、文章都放在這裡)
4. 建立並啟用虛擬環境 (venv)

  • 建立 venv
python -m venv .venv
  • 啟用 venv
.\.venv\Scripts\Activate.ps1

成功時,命令列前面會出現 (.venv)
若出現running scripts is disabled或無法辨識:
執行:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force

關閉這個 PowerShell 視窗,再重新開一個 PowerShell。
回到專案資料夾並再次啟用:

cd ~/API-30Days
.\.venv\Scripts\Activate.ps1

小提醒:檔名要完全一致,是 Activate.ps1,而不是 activate.ps1

  • 停用 venv(之後要關閉可用)
deactivate
  1. 安裝 requests
python -m pip install --upgrade pip
pip install requests
  1. 撰寫並執行測試程式
    在專案資料夾新增 day01_test_api.py,內容如下(用記事本建檔):
notepad day01_test_api.py

在記事本上貼上以下程式碼後存檔

import requests

url = "https://jsonplaceholder.typicode.com/todos/1"
    r = requests.get(url, timeout=10)
    r.raise_for_status()
    print("API OK:",r.json())

執行(PowerShell)

python day01_test_api.py

成功看到「API OK: {...}」的訊息,代表環境準備完成!


下一篇
Day02 — 10 分鐘理解 API 與 JSON,完成你的第一支讀取程式
系列文
每天一點 API:打造我的生活小工具3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言